package com.example.copa_america.util;

import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.widget.Toast;

public abstract class CopaActivity extends Activity {
	/** Instancia de dialog para cargas de datos en segundo plano. */
	public Dialog dialog;

	/** Metodo a ser llamado luego de ejecutar una tarea en segundo plano. */
	public abstract void onTaskCompleted();

	/** Metodo a ser llamado antes de ejecutar una tarea en segundo plano. */
	public abstract void onTaskPrepare();

	/**
	 * Verifica si hay conexion a internet, de no haber informa al usuario.
	 * 
	 * @return Retorna un booleando que indica si hay conexion o no.
	 */
	public boolean isNetworkAvailable() {
		Context context = getApplicationContext();
		ConnectivityManager connectivity = (ConnectivityManager) context
				.getSystemService(Context.CONNECTIVITY_SERVICE);
		if (connectivity == null) {
			return false;
		} else {
			NetworkInfo[] info = connectivity.getAllNetworkInfo();
			if (info != null) {
				for (int i = 0; i < info.length; i++) {
					if (info[i].getState() == NetworkInfo.State.CONNECTED) {
						return true;
					}
				}
			}
		}
		return false;
	}

	/**
	 * Muestra notificaciones Tast al usuario por pantalla.
	 * 
	 * @param msg
	 *            Mensaje que se mostrar en el Toast al usuario.
	 */
	protected void tostador(String msg) {
		Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show();
	}
}
